Virtualizing technologies are techniques and mechanisms by which computers, including the operating system, may be implemented in software. When an entire computer system including the operating system is implemented in software, the unit may be referred to as a virtual machine.
Virtual machines may be used in many situations, for example, where each virtual machine performs a specific function or component of a larger service, but the components are executed in separate virtual machines to avoid conflicts or problems between the components. In such an example, multiple components may be executed on a single hardware platform or may be spread across multiple hardware platforms to handle different levels of demand.